1. Field of the Invention
The present invention relates to a user interface display and, more particularly, to a method and system for expanding and collapsing expandable and collapsible items in a display and indicating states of expandable and collapsible items.
2. Brief Description of Prior Developments
As user interface (UI) displays continually get loaded with ever increasing amounts of information, there is a correspondingly increasing need for users to have good ways to quickly and easily control the amount of information getting presented per situation or context. Various different types of controls for expanding and collapsing expandable and collapsible items in displays are known. Twistie controls are a type of easy-to-use expander-collapser control popular in many International Business Machine Corporation (IBM) products. Other similar formats for expanding and collapsing subordinate levels of information are the “+” and “−” tree view controls in Microsoft WINDOWS, and the turner control in JAVA which expands and collapses the corresponding containers. This disclosure will henceforth use the term “expander/collapser items” generically to cover all forms of expanders and collapsers.
A problem today is that many times multiple expander/collapser items are embedded within information, such as notes or helps, and there is not a surface-level graphic control to expand all or collapse all of the expander/collapser items at a same time. Under a View pull-down menu there might be choices to “Expand all sections” and “Collapse all sections”, but these are menu choices and not presented on the surface; whereas expander/collapser items controls directly embedded within the UI always display the current status of the expander/collapser items, which is always the opposite of the action (if a section is twisted open, the twistie will display as being expanded, not directly indicating the action that clicking it will collapse it). So, the first problem with providing a visual surface-level and higher-level control of lower level expander/collapser items is that it does not map 100% with the lower-level expander/collapser item controls. A visual surface-level and higher-level control has not been provided which can reflect the current status or states of lower-level expander/collapser items.
A second problem today with surfaced higher-level expander/collapser controls is in regard to a mixed state when some of their subordinate or lower level expander/collapser items are expanded and some are collapsed. Current surfaced higher-level expander/collapser controls do not indicate mixed state conditions. Not only is a mixed state not reflected, but also two possible actions (i.e., expand and collapse) in a mixed state are not both available. In a non-mixed state condition just one action is shown in today's surfaced higher-level expander/collapser controls (i.e., expand or collapse). Tree views and turner controls in macro tree controls allow higher-level expanding and contracting, but do not indicate mixed conditions when some sub nodes are expanded and some are collapsed.
A third problem is that the low-level expander/collapser items of today need to act independently of one another. A UI designer today could not easily allow only one expander/collapser items to be expanded at time; which might save the user from resizing the pane or scrolling. This is because some users are going to want to expand more than one expander/collapser item at a time. Most might want to expand only one expander/collapser item at a time in most situations. So, for lowest-common-denominator coverage, current UI displays handle the worst case of highly flexible (independent expander/collapser items), but do not have a self-maintaining way to collapse un-needed items (i.e., expanding a second expander/collapser item would automatically collapse a previously expanded first expander/collapser item).
Typically, expander/collapser item controls today are provided at the item level; not higher a level. So, rarely if ever do expander/collapser item controls appear to expand or collapse all the branches of a tree; just one branch at a time. This is a hard problem to solve because of the interplay of action versus status indications are inherently opposite; as well how to handle the in-between state when some expander/collapser items are already open while others are closed. Another problem is how to keep this control at the surface and as a single control, and not let it get to be spread out over too many buttons and status indicators which would make it more cumbersome and harder to deal with. There is a desire to provide a surface-level visual control to expand all or collapse all lower level expander/collapser items at a same time. This is a desire to provide a visual surface-level and higher-level control that can reflect the current status or states of lower-level expander/collapser items. There is a desire to provide a surfaced higher-level expander/collapser control which can indicate mixed state conditions of lower level expander/collapser items. This is also a desire to provide two possible actions (i.e., expand and collapse) in a mixed state indication area which allows both actions (i.e., expand and collapse) to be selectively available. There is also a desire to provide a UI display that can be highly flexible (independent expander/collapser items) or could have a self-maintaining way to collapse un-needed items (i.e., expanding a second expander/collapser item would automatically collapse a previously expanded first expander/collapser item), and also allow for all expansion or all collapse actions.